﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _8DecemberClassWork
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Ввести количество строк: ");
            int rows = Int32.Parse(Console.ReadLine());
            Console.Write("Ввести количество столбцов: ");
            int columns = Int32.Parse(Console.ReadLine());
            //int[,] myArray = CreateRandomArray(rows, columns);
            //PrintArrayToConsole(myArray);
            ////FindAndSummEvenAndOddNumbers(myArray);
            //FindMinimumElement(myArray);
            int[,] arrayTaskThree = CreateArrayTaskThree(rows, columns);
            PrintArrayToConsole(arrayTaskThree);
            //SummOfEachRow(arrayTaskThree);
            MultiplicationOfNonNullElements(arrayTaskThree);
            Console.Read();

        }

        static int[,] CreateRandomArray(int rowCount, int columnCount)
        {
            int[,] newArray = new int[rowCount, columnCount];
            Random rnd = new Random();

            for (int i = 0; i < rowCount; i++)
            {
                for (int j = 0; j < columnCount; j++)
                {
                    newArray[i, j] = rnd.Next(1,20);
                }
            }
            return newArray;
        }
        static void PrintArrayToConsole(int[,] arrayForPrint)
        {
            for (int i = 0; i < arrayForPrint.GetLength(0); i++)
            {
                for (int j = 0; j < arrayForPrint.GetLength(1); j++)
                {
                    Console.Write("{0}\t", arrayForPrint[i, j]);
                }
                Console.WriteLine();
            }
            Console.Read();
        }
        static void FindAndSummEvenAndOddNumbers(int[,] myArray)
        {
            int evenNumbersCount = 0;
            int oddNumbersCount = 0;

            for (int i = 0; i < myArray.GetLength(0); i++)
            {
                for (int j = 0; j < myArray.GetLength(1); j++)
                {
                    if (myArray[i, j] %2 == 0)
                    {
                        evenNumbersCount++;
                    }
                    else
                    {
                        oddNumbersCount++;
                    }
                }
            }
            Console.WriteLine("Количество четных чисел: {0}", evenNumbersCount);
            Console.WriteLine("Количество нечетных чисел: {0}", oddNumbersCount);
            Console.Read();
        }
        static void FindMinimumElement(int[,] myArray)
        {
            int[] intArray = new int[myArray.GetLength(1)];
            for (int j = 0; j < myArray.GetLength(1); j++)
            {
                int minValue = 9;
                for (int i = 0; i < myArray.GetLength(0); i++)
                {
                    if (myArray[i, j] < minValue)
                    {
                        minValue = myArray[i, j];
                    }
                }
                Console.WriteLine("Наименьший элемент в столбце : {0}", minValue);
                intArray[j] = minValue; 
            }
            int maxValue = intArray.Max<int>();
            Console.WriteLine("Максимальный из наименьших элементов : {0}", maxValue);
            Console.Read();
        }

        static int[,] CreateArrayTaskThree(int rows, int columns)
        {
            int[,] threeTaskArray = new int[rows, columns];
            Random rnd = new Random();

            for (int i = 0; i < rows; i++)
            {
                for (int j = 0; j < columns; j++)
                {
                    threeTaskArray[i, j] = rnd.Next(1, 10);
                }
            }
            return threeTaskArray;
        }


        static void SummOfEachRow (int[,] arrayTaskThree)
        {
            int index = 0;
            int maxValue = 0;
            int[] intArray = new int[arrayTaskThree.GetLength(0)];
            for (int i = 0; i < arrayTaskThree.GetLength(0); i++)
            {             
                int summNumber = 0;              
                    for (int j = 0; j < arrayTaskThree.GetLength(1); j++)
                    {
                        summNumber = summNumber + arrayTaskThree[i, j];
                    }
                Console.WriteLine("Сумма элементов в строке: {0}", summNumber);
                intArray[i] = summNumber;
                maxValue = intArray.Max<int>();
            }
            index = Array.IndexOf(intArray, maxValue);
            Console.WriteLine("Максимальная сумма : {0}", maxValue);
            Console.WriteLine("Наибольшая сумма числел в строке {0}", index);
            Console.Read();
        }

        static void MultiplicationOfNonNullElements (int[,] arrayTaskFour)
        {
            int multiplNumber = 1;
            for (int i = 0; i < arrayTaskFour.GetLength(0); i++)
            {               
                for (int j = 0; j < arrayTaskFour.GetLength(1); j++)
                    if (arrayTaskFour[i, j] != 0)
                    {
                       multiplNumber = arrayTaskFour[i, j] * multiplNumber;            
                    }
            }
            Console.WriteLine("Произведение ненулевых элементов: {0}", multiplNumber);

            Console.Read();
        }
        }
    }
    

